﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using GestionIncidencias.Models;
//using SOAPTecnico.Dominio;

namespace GestionIncidencias.Controllers
{
    public class TecnicoController : Controller
    {
        //TecnicosWS.TecnicosServiceClient AdminTecnicos = new TecnicosWS.TecnicosServiceClient();

        private List<Models.Tecnico> CrearTecnicos()
        {
           /* List<Models.Tecnico> tecnicos = new List<Models.Tecnico>();
            tecnicos.Add(new Models.Tecnico() { Codigo = 1, Nombre = "Juan", Apellido = "Rojas", Especialidad = "Models.Tecnico de Microinformática" });
            tecnicos.Add(new Models.Tecnico() { Codigo = 2, Nombre = "Jorge", Apellido = "Salazar", Especialidad = "Desarollador WEB" });
            tecnicos.Add(new Models.Tecnico() { Codigo = 3, Nombre = "Raquel", Apellido = "Espinoza", Especialidad = "Adiministrador SAP Basis" });
            tecnicos.Add(new Models.Tecnico() { Codigo = 4, Nombre = "Rafael", Apellido = "Santos", Especialidad = "Analista Funcional SAP Retail" });
            return tecnicos;*/

            return null;

        }


        private Models.Tecnico ObtenerTecnico(int codigo)
        {
            /*List<Models.Tecnico> tecnicos = (List<Models.Tecnico>)Session["tecnicos"];
            Models.Tecnico model = tecnicos.Single(delegate(Models.Tecnico tecnico)
            {
                if (tecnico.Codigo == codigo) return true;
                else return false;
            });
            return model;*/

            return null;
        }

        public ActionResult Index()
        {
            if (Session["tecnicos"] == null)
                Session["tecnicos"] = CrearTecnicos();
            List<Models.Tecnico> model = (List<Models.Tecnico>)Session["tecnicos"];
            return View(model);
        }

        public ActionResult Details(int id)
        {
            Models.Tecnico model = ObtenerTecnico(id);
            return View(model);
        }


        public ActionResult Create()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            if (ModelState.IsValid)
            {
                try
                {
                   /* SOAPTecnico.Dominio.Tecnico addTecnico = new SOAPTecnico.Dominio.Tecnico();
                    {
                        addTecnico.Nombre = collection["Codigo"];
                        addTecnico.Apellido = collection["Apellido"];
                        addTecnico.Especialidad = collection["Especialidad"];
                        SOAPTecnico.Dominio.Tecnico Return = AdminTecnicos.CrearTecnico(addTecnico);
//                    List<Models.Tecnico> tecnicos = (List<Models.Tecnico>)Session["tecnicos"];
//                    tecnicos.Add(new Models.Tecnico()
//                    {
//                        Codigo = int.Parse(collection["Codigo"]),
//                        Nombre = collection["Nombre"],
//                        Apellido = collection["Apellido"],
//                        Especialidad = collection["Especialidad"],
//                    }
//                    );
                    };
                    return RedirectToAction("Index");*/
                }
                catch
                {
                }
            }
                return View();
        }


        // GET: /Models.Tecnico/Edit/5
        public ActionResult Edit(int id)
        {
            Models.Tecnico model = ObtenerTecnico(id);
            return View(model);
        }
        // POST: /Models.Tecnico/Edit/5
        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Models.Tecnico model = ObtenerTecnico(id);
                    model.Nombre = collection["Nombre"];
                    model.Apellido = collection["Apellido"];
                    model.Especialidad = collection["Especialidad"];
                    return RedirectToAction("Index");
                }
                catch
                {
                }
            }
                return View();
        }


        // GET: /Models.Tecnico/Delete/5
        public ActionResult Delete(int id)
        {
            Models.Tecnico model = ObtenerTecnico(id);
            return View(model);
        }
        // POST: /Models.Tecnico/Delete/5
        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                List<Models.Tecnico> tecnicos = (List<Models.Tecnico>)Session["tecnicos"];
                tecnicos.Remove(ObtenerTecnico(id));
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}
